package com.lonely.fx;

import javafx.application.Application;
import javafx.event.Event;
import javafx.scene.Cursor;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

/**
 * @author 独孤小标
 * @description 场景设置类 场景介绍：https://blog.csdn.net/eguid/article/details/94326636
 * 窗体(State)--设置-->一个场景(Scene)--添加-->多个节点（Node）
 * @since 2022/6/21 11:19 下午
 */
public class SceneSettingMain extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    /**
     * 演示 按键盘 颜色场景切换
     */
    @Override
    public void start(Stage primaryStage) throws Exception {

        primaryStage.setTitle("测试Scene");
        primaryStage.setWidth(500);
        primaryStage.setHeight(500);

        //模拟多场景切换，注意一个窗体只能绑定一个页面，但是可以修改

        //创建第一个场景
        Group firstGroup = new Group();
        Scene firstScene = new Scene(firstGroup, 200, 200, Color.RED);

        //Scene属性设置
        //设置当鼠标进入当前场景时候的鼠标样式
        //firstScene.setCursor(Cursor.HAND);

        //设置鼠标样式为自定义图标
        //String path = getClass().getResource("/icons/mla.png").toExternalForm();
        //firstScene.setCursor(Cursor.cursor(path));

        //创建第二个场景
        Group secondGroup = new Group();
        Scene secondScene = new Scene(secondGroup, 300, 300, Color.GREEN);

        //根据事件进行切换
        firstScene.addEventHandler(Event.ANY, event -> {
            String name = event.getEventType().getName();
            switch (name) {
                case "MOUSE_CLICKED":
                    System.out.println("鼠标点击");
                    break;
                case "KEY_PRESSED":
                    //任意键盘点击,切换场景
                    primaryStage.setScene(secondScene);
                    break;
                default:
                    break;
            }
            event.consume();
        });


        secondScene.addEventHandler(Event.ANY, event -> {
            String name = event.getEventType().getName();
            switch (name) {
                case "MOUSE_CLICKED":
                    System.out.println("鼠标点击");
                    break;
                case "KEY_PRESSED":
                    //任意键盘点击,切换场景
                    primaryStage.setScene(firstScene);
                    break;
                default:
                    break;
            }
            event.consume();
        });


        //初始设置为第一个场景
        primaryStage.setScene(firstScene);
        primaryStage.show();


    }
}
